package cl.inmobiliaria.negocio;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import cl.inmobiliaria.entidades.Parametro;
import cl.inmobiliaria.persistencia.entity.Admcomuna;
import cl.inmobiliaria.persistencia.entity.Admregion;
import cl.inmobiliaria.persistencia.services.impl.CotizacionInmobiliaria;



public class DatosRegionales{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	//private CotizacionInmobiliaria entBd;
	
	/** *
	 *ESTAS INSTANCIAS SON NECESARIAS PARA CREAR UNA NUEVA CONEXION 
	 */
	 private CotizacionInmobiliaria entBd = new  CotizacionInmobiliaria();
     private EntityManagerFactory emf = Persistence.createEntityManagerFactory("CotizacionInmobiliaria");
     private EntityManager em = emf.createEntityManager();
     /***/

	public List<Parametro> obtenerRegiones()
	{
		
		Parametro parametro = new Parametro();
		/**
		 * Instanciar la clase*/
		entBd.setEntityManager(em);
		
		List<Parametro> listRegiones = new ArrayList<Parametro>();
		List<Admregion> regiones = new ArrayList<Admregion>(entBd.getAllRegiones());
		
		
		for (int i=0; i<regiones.size(); i++)
		{
			parametro = new Parametro();
			parametro.setCodigo(regiones.get(i).getCodigo());
			parametro.setDescripcion(regiones.get(i).getNombre());
			//System.out.println(regiones.get(i).getNombre());
			listRegiones.add(i,parametro);
		}
		
		
		return listRegiones;
	}
	
	public List<Parametro> obtenerComunas(String region)
	{
		
		Parametro parametro = new Parametro();

		entBd.setEntityManager(em);
		
		List<Parametro> listComunas = new ArrayList<Parametro>();
		List<Admcomuna> comunas = new ArrayList<Admcomuna>(entBd.getComunasPorRegion(region));
		
		
		for (int i=0; i<comunas.size(); i++)
		{
			parametro = new Parametro();
			parametro.setCodigo(comunas.get(i).getCodigo());
			parametro.setDescripcion(comunas.get(i).getNombre());
			listComunas.add(i,parametro);
		}
		
		
		return listComunas;
	}
	
	public String regionPorComuna(String comuna)
	{
		entBd.setEntityManager(em);
		String region;
		
		List<Admregion> regiones = new ArrayList<Admregion>(entBd.getRegionPorComuna(comuna));
		region = regiones.get(0).getCodigo(); 
		
		return region;
	}

	
}
